package de.mnit.schnipsel.swt.editor;

import org.eclipse.swt.widgets.Composite;

import de.mnit.basis.daten.konstant.position.POSITION_H;
import de.mnit.basis.daten.typ.zeit.Datum;
import de.mnit.basis.daten.typ.zeit.S_Zeitpunkt;
import de.mnit.basis.daten.typ.zeit.Zeitpunkt;
import de.mnit.basis.daten.typ.zeit.format.FORMAT_DATUM;
import de.mnit.basis.daten.typ.zeit.format.FORMAT_ZEIT;
import de.mnit.basis.swt.anw.A_MN_Gruppe;
import de.mnit.basis.swt.element.S_SWT_Komponente;
import de.mnit.basis.swt.element.steuer.SWT_Label;
import de.mnit.basis.swt.layout.LayoutMax;
import de.mnit.basis.sys.sprache.S;

/**
 * @author Michael Nitsche
 * 24.09.2010	Erstellt
 */
public class K_EditorAnzeigeAlter extends A_MN_Gruppe<K_EditorAnzeigeAlter> {

	private static final S s=new S(K_EditorAnzeigeAlter.class);
	public final SWT_Label label= new SWT_Label("").s1_POSITION(POSITION_H.RECHTS);


	public void setze(S_Zeitpunkt erstellt, S_Zeitpunkt geaendert) {
		S_Zeitpunkt zp=geaendert;
		int diffStd= zp==null ? 0 : zp.diffStd(Zeitpunkt.neu());

		String text="";
		if(zp==null)
			text="";
		else if(zp.gDatum().istGleich(Datum.neu())) //Heute
			text="Heute, "+zp.gUhrzeit().zuText(FORMAT_ZEIT.GRUPPE_HHMM);
		else if(Datum.neu().diffTage(zp.gDatum())==-1) //Gestern
			text="Gestern, "+zp.gUhrzeit().zuText(FORMAT_ZEIT.GRUPPE_HHMM);
		else if(diffStd<=30*24)
			text=diffStd/24+" "+s.t("Tage");
		else if(diffStd/24/30==1)
			text="1 "+s.t("Monat");
		else if(diffStd<720*24)
			text=diffStd/24/30+" "+s.t("Monate");
		else if(diffStd/24/365==1)
			text="1 "+s.t("Jahr");
		else
			text=diffStd/24/365+" Jahre";
		this.label.sText(text+"  ");

		Object[] tipFormat=new Object[] {
			FORMAT_DATUM.TAG_2,
			".",
			FORMAT_DATUM.MONAT_2,
			".",
			FORMAT_DATUM.JAHR_4,
			" - ",
			FORMAT_ZEIT.STD_2,
			":",
			FORMAT_ZEIT.MIN_2,
		};

		String sErstellt = erstellt==null ? "" : erstellt.zuText(tipFormat);
		String sGeaendert= geaendert==null ? "" : geaendert.zuText(tipFormat);
		String tip= s.t("Erstellt")+":\n"+sErstellt+"\n"+ s.t("Geändert")+":\n"+sGeaendert;
		this.label.sTip(tip);
	}

//	ERZEUGEN

	protected S_SWT_Komponente<?, ? extends Composite> layout() {
		return LayoutMax.neu(this.label);
	}

	protected void initStyle() {
		this.label.sTip(s.t("Geändert vor"));
	}

	protected void initEvents() {
	}

}
